package com.ks.user.entity;

import java.io.Serializable;

import com.baomidou.mybatisplus.enums.IdType;

import java.util.Date;

import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;

import java.io.Serializable;
import java.util.List;

import com.baomidou.mybatisplus.annotations.Version;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 组织机构表
 * </p>
 *
 * @author kingdee123
 * @since 2020-11-30
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("org_base")
public class OrgBase extends Model<OrgBase> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键Id
     */
    @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    /**
     * 组织编码
     */
    @TableField("iOrgCode")
    private String iOrgCode;
    /**
     * 组织机构名称
     */
    @TableField("iMechanismName")
    private String iMechanismName;
    /**
     * 组织机构类型（1：组织，2：机构，3：部门，4：工作组）
     */
    @TableField("iMechanismType")
    private Integer iMechanismType;
    /**
     * 组织长编码
     */
    @TableField("iMechanismCode")
    private String iMechanismCode;
    /**
     * 上级单位编码
     */
    @TableField("iSuperiorCode")
    private String iSuperiorCode;
    /**
     * 组织机构状态
     */
    @TableField("sStatus")
    private Integer sStatus;

    @TableField("cMicroAppAllow")
    private Integer cMicroAppAllow;

    @TableField("iTenantimg")
    private String iTenantimg;
    /**
     * 创建时间
     */
    @TableField("createTime")
    private Date createTime;
    /**
     * 创建人
     */
    @TableField("createUserID")
    private Integer createUserID;
    /**
     * 租户代码
     */
    @TableField("tenantID")
    private Integer tenantID;
    /**
     * 组织代码
     */
    @TableField("orgID")
    private Integer orgID;
    /**
     * 机构代码
     */
    @TableField("orgSubID")
    private Integer orgSubID;
    /**
     * 更新时间
     */
    @TableField("updateTime")
    private Date updateTime;
    /**
     * 更新人
     */
    @TableField("updateUserID")
    private Integer updateUserID;
    /**
     * 删除标识
     */
    @TableField("delMark")
    private Integer delMark;
    /**
     * 版本
     */
    @TableField("version")
    private String version;
    /**
     * 数据类型
     */
    @TableField("dataType")
    private String dataType;

    @TableField(exist = false)
    @ApiModelProperty(value = "下级列表")
    private List<OrgBase> orgBases;


    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
